home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / grafik / 3d & render tools / irit / man / man6 / swpsclsrf.6 < prev    next >
Text File  |  1996-07-16  |  4KB  |  81 lines

  1. .TH SWPSCLSRF
  2.  6 "IRIT Version 6.0" 
  3. .SH NAME
  4. SWPSCLSRF
  5.  
  6.  
  7.  
  8.  SurfaceType SWPSCLSRF( CurveType CrossSection, CurveType Axis,
  9.                         NumericType Scale | CurveType ScaleCrv,
  10.                         CurveType FrameCrv | VectorType FrameVec
  11.                                                           | ConstType OFF,
  12.                         NumericType ScaleRefine )
  13.  
  14. Constructs a generalized cylinder surface. This function sweeps a specified
  15. cross-section CrossSection along the provided Axis.
  16. The cross-section may be scaled by a constant value Scale, or scaled
  17. along the Axis parametric direction via a scaling curve ScaleCrv.
  18. By default, when frame specification is OFF, the orientation
  19. of the cross section is computed using the Axis curve tangent and
  20. normal. However, unlike the Frenet frame, attempt is made to minimize
  21. the normal change, as can happen along inflection points in Axis.
  22. If a VectorType FrameVec is provided as a frame orientation setting,
  23. it is used to fix the binormal direction to this value. In other words, the
  24. orientation frame has a fixed binormal. If a CurveType FrameCrv is
  25. specified as a frame orientation setting, this vector field curve is
  26. evaluated at each placement of the cross-section to yield the needed binormal.
  27. ScaleRefine is an integer value to define possible refinement of the
  28. Axis to reflect the information in ScalingCrv. Value of zero will
  29. force no refinement while value of n > 0 will insert n times the
  30. number of control points in ScaleCrv into Axis, better emulating
  31. the scaling requested.
  32. The resulting sweep is only an approximation of the real sweep. The
  33. scaling and axis placement will not be exact, in general.
  34. Manual refinement (in addition to ScaleRefine) of the axis curve at
  35. the proper location, where accuracy is important, should improve the accuracy
  36. of the output. The parametric domains of ScaleCrv and FrameCrv do
  37. not have to match the parametric domain of Axis, and their domains are
  38. made compatible by this function.
  39.  
  40. Example:
  41.  
  42.     Cross = arc( vector( -0.11, -0.1,  0.0 ),
  43.                  vector( -0.1,  -0.1,  0.0 ),
  44.                  vector( -0.1,  -0.11, 0.0 ) ) +
  45.             arc( vector(  0.1,  -0.11, 0.0 ),
  46.                  vector(  0.1,  -0.1,  0.0 ),
  47.                  vector(  0.11, -0.1,  0.0 ) ) +
  48.             arc( vector(  0.11,  0.1,  0.0 ),
  49.                  vector(  0.1,   0.1,  0.0 ),
  50.                  vector(  0.1,   0.11, 0.0 ) ) +
  51.             arc( vector( -0.1,   0.11, 0.0 ),
  52.                  vector( -0.1,   0.1,  0.0 ),
  53.                  vector( -0.11,  0.1,  0.0 ) ) +
  54.             ctlpt( E2, -0.11, -0.1 );
  55.     scaleCrv = cbspline( 3,
  56.                          list( ctlpt( E2, 0.05, 1.0 ),
  57.                                ctlpt( E2, 0.1,  0.0 ),
  58.                                ctlpt( E2, 0.2,  2.0 ),
  59.                                ctlpt( E2, 0.3,  0.0 ),
  60.                                ctlpt( E2, 0.4,  2.0 ),
  61.                                ctlpt( E2, 0.5,  0.0 ),
  62.                                ctlpt( E2, 0.6,  2.0 ),
  63.                                ctlpt( E2, 0.7,  0.0 ),
  64.                                ctlpt( E2, 0.8,  2.0 ),
  65.                                ctlpt( E2, 0.85, 1.0 ) ),
  66.                          list( KV_OPEN ) );
  67.     Axis = circle( vector( 0, 0, 0 ), 1 );
  68.     Frame = circle( vector( 0, 0, 0 ), 1 )
  69.             * rotx( 90 ) * trans( vector( 1.5, 0.0, 0.0 ) );
  70.  
  71.     Srf1 = SWPSCLSRF( Cross, Axis, scaleCrv, off, 0 );
  72.     Srf2 = SWPSCLSRF( Cross, Axis, scaleCrv, off, 2 );
  73.     Srf3 = SWPSCLSRF( Cross, Axis, 1.0, Frame, 0 );
  74.  
  75. constructs a rounded rectangle cross-section and sweeps it along a circle,
  76. while scaling and orienting in several ways. The axis curve Axis is
  77. automatically refined in Srf2 to better approximate the requested
  78. scaling.
  79.  
  80. See also SWEEPSRF for sweep with no scale.
  81.